﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace iNet.Media.Imaging.Exif
{
	/// <summary>
	/// EXIF Tag 讀取器介面。
	/// </summary>
	public interface IExifTagReader
	{
		/// <summary>
		/// 取得提供位元組轉換的 BitConverter。
		/// </summary>
		BitConverter BitConverter { get; }
		/// <summary>
		/// 取得值以確認讀取期間是否發生錯誤。
		/// </summary>
		bool HasError { get; }
		/// <summary>
		/// 取得正在讀取的 IFD。
		/// </summary>
		Ifd? Ifd { get; }
		/// <summary>
		/// 讀取 IFD 中的下一個 EXIF Tag。
		/// </summary>
		/// <returns>True 表示讀取成功，False 表示已讀取至最後一個 EXIF Tag -或- 讀取時發生錯誤。</returns>
		bool ReadNextTag();
		/// <summary>
		/// 取得目前讀取的 EXIF Tag。
		/// </summary>
		ExifTag Tag { get; }
		/// <summary>
		/// 取得目前讀取的 EXIF Tag ID。
		/// </summary>
		ushort? TagId { get; }
		/// <summary>
		/// 取得目前讀取的 EXIF Tag 資料類型。
		/// </summary>
		ExifTagType? TagType { get; }
	}
}
